﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BlueCMS.Core.Data.Query.Conditions
{
    public class LogicNode : ConditionBase, IStartNode
    {
        public LogicNodeType Type { get; set; }

        public LogicNode(LogicNodeType type)
        {
            Type = type;
        }

        IStartNode IStartNode.StartGroup()
        {
            return (IStartNode)base.StartGroup();
        }

        ILHSNode IStartNode.Aggregate(string clause)
        {
            return (ILHSNode)base.Aggregate(clause);
        }

        ILHSNode IStartNode.Column(string name)
        {
            return (ILHSNode)base.Column(name);
        }

        ILHSNode IStartNode.Constant(object value)
        {
            return (ILHSNode)base.Constant(value);
        }

        ILHSNode IStartNode.Parameter(object value)
        {
            return (ILHSNode)base.Parameter(value);
        }

        ILHSNode IStartNode.Parameter(object value, string name)
        {
            return (ILHSNode)base.Parameter(value, name);
        }

        ILHSNode IStartNode.SubSelect(Action<SelectQuery> subquery)
        {
            return (ILHSNode)base.SubSelect(subquery);
        }

        IEndNode IStartNode.Exists(Action<SelectQuery> subquery)
        {
            return (IEndNode)base.Exists(subquery);
        }

        IEndNode IStartNode.NotExists(Action<SelectQuery> subquery)
        {
            return (IEndNode)base.NotExists(subquery);
        }
    }
}
